iT邦幫忙

2023 iThome 鐵人賽

DAY 15
0
Odoo

Odoo 魔法學院: 一步一腳印帶你成為客製化大師系列 第 15

[Day15] 圖書館系統:更實務的資料欄位擴充

  • 分享至 

  • xImage
  •  

下拉式選單、必填欄位ˋ預設值 ...,這些都是我們現實中常遇到的欄位,我們來擴充原有的圖書館系統吧。

查看現存的 Models

系統越來越龐大時,除錯技巧及越來越重要,這邊分享一個查看現有所有 Models 的方法,這邊以 Book model 為例。

確認進入 Developer Mode,再來進入 Settings (左上角),接著 Technical > Database Structure > Models,你就會看到下圖,翻找看看吧 : )

https://ithelp.ithome.com.tw/upload/images/20230930/20163326fJOXR8spBF.jpg

特別提幾個

  • Access Rights: 安全群組的操作權限規則
  • Record Rules: 紀錄的過濾規則
  • Views: 應用在此 Model 上的所有 Views

不同的欄位型態

下拉式選單

這邊用來表示書本的型態,是紙本、電子書之類的,第一個參數用 List[tuple(value, label)]label 也就是選項的顯示名子,而欄位名稱則是第二個參數 "Type"。

# library_app/models/library_book.py
    ...
    book_type = fields.Selection(
        [("paper", "Paperback"),
         ("hard", "Hardcover"),
         ("electronic", "Electronic"),
         ("other", "Other")],
        "Type",
    )

其它

這邊提幾個沒這麼直觀的:

  • Char(string): 可輸入單行文字
  • Text(string): 可輸入多行文字
  • Float(string, (total_num, decimal_num)): total_num 是總共幾位數,而 decimal_num 則是指顯示至小數點後幾位
    notes = fields.Text("Internal Notes")
    descr = fields.Html("Description")

    # Numeric fields:
    copies = fields.Integer(default=1)
    avg_rating = fields.Float("Average Rating", (3, 2))

想了解更多可以參考 ORM API


上一篇
[Day14]修改使用者介面+web頁面
下一篇
[Day16] 書與出版社的關聯:One-to-Many, Many-to-One
系列文
Odoo 魔法學院: 一步一腳印帶你成為客製化大師30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言